using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace Avon
{
    /// <summary>
    /// a szamlakData
    /// </summary>
    public struct SzamlakosztalyData
    {
        int m_SzamlaID;
        string m_Hatarido;
        int m_Osszeg;
        int m_TanacsadonoID;
        int m_SzallitoID;

        /// <summary>
        /// getterek es setterek
        /// </summary>
        public int SzamlaID
        {
            get { return m_SzamlaID; }
            set { m_SzamlaID = value; }
        }

        public string Hatarido
        {
            get { return m_Hatarido; }
            set { m_Hatarido = value; }
        }

        public int Osszeg
        {
            get {return m_Osszeg;}
            set {m_Osszeg = value;}
        }

        public int TanacsadonoID
        {
            get { return m_TanacsadonoID; }
            set { m_TanacsadonoID = value; }
        }

        public int SzallitoID
        {
            get { return m_SzallitoID; }
            set { m_SzallitoID = value; }
        }
    }
    /// <summary>
    /// szamlak DAL osztaly, amit szarmaztatok a DAL bol
    /// </summary>
        public class SzamlakosztalyDAL : DAL
        {
            public List<SzamlakosztalyData> GetSzamlakosztalyList()
            {
                string query = "SELECT Szamlak.SzamlaID, Szamlak.Hatarido" +
                    ", Szamlak.Osszeg,Szamlak.TanacsadonoID,Szamlak.SzallitoID" +
                    " FROM Szamlak,Szallitok,Tanacsadono" +
                    " WHERE Szamlak.SzallitoID = Szallitok.SzallitoID" +
                    " AND Szamlak.TanacsadonoID = Tanacsadono.TanacsadonoID";

                string error = string.Empty;

                SqlDataReader rdr = ExecuteReader(query, ref error);

                List<SzamlakosztalyData> SzamlakosztalyList = new List<SzamlakosztalyData>();
                if (error == "OK")
                {
                    while (rdr.Read())
                    {
                        SzamlakosztalyData item = new SzamlakosztalyData();
                        item.SzamlaID = Convert.ToInt32(rdr[0]);
                        item.Hatarido = rdr[1].ToString();
                        item.Osszeg = Convert.ToInt32(rdr[2]);
                        item.TanacsadonoID = Convert.ToInt32(rdr[3]);
                        item.SzallitoID = Convert.ToInt32(rdr[4]);

                        SzamlakosztalyList.Add(item);
                    }
                }
                CloseDataReader(rdr);
                return SzamlakosztalyList;
            }
            /// <summary>
            /// szamla beszurasa
            /// </summary>
            /// <param name="Hatarido">a szamla hatarideje,ameddig ki lehet fizetni az adott szamlat</param>
            /// <param name="Osszeg"> a szamla osszege, hogy mennyit kell kifizetni</param>
            /// <param name="TanacsadonoID">a tanacsadono id-ja, akinenk szol a szamla</param>
            /// <param name="SzallitoID">a szallito id-ja, aki hozta a szamlat es a rajta szereplo termekeket</param>
            /// <returns>a beszuras SQL parancs eredmenyet adja vissza</returns>
            public string BeszurSzamla(string Hatarido, int Osszeg, int TanacsadonoID, int SzallitoID)
            {
                string query = "INSERT INTO Szamlak (Hatarido,Osszeg,TanacsadonoID,SzallitoID)" +
                                " VALUES ('" + Hatarido + "','" + Osszeg + "','" + TanacsadonoID + "','" + SzallitoID + "')";
                return ExecuteNonQuery(query);
            }
            /// <summary>
            /// a torol metodus, kitorol egy adott szamlat az ID-ja alapjan
            /// </summary>
            /// <param name="SzamlaID">a szamla id-ja</param>
            /// <returns>a torol SQL paranacsa eredmenyet adja vissza</returns>
            public string TorolSzamla(int SzamlaID)
            {
                string query = "DELETE FROM Szamlak WHERE SzamlaId = " + SzamlaID;

                return ExecuteNonQuery(query);
            }
        }
    }
